package com.zhang.goods.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhang.goods.entity.SkuSaleAttrValue;
import com.zhang.goods.mapper.SkuSaleAttrValueMapper;
import com.zhang.goods.service.ISkuSaleAttrValueService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

/**
 * <p>
 * sku属性值表（销售属性）  服务实现类
 * </p>
 *
 * @author 创世神
 * @since 2023-10-04
 */
@Service
public class SkuSaleAttrValueServiceImpl extends ServiceImpl<SkuSaleAttrValueMapper, SkuSaleAttrValue> implements ISkuSaleAttrValueService {

    @Override
    public List<SkuSaleAttrValue> listBySkuId(Long skuId) {
        LambdaQueryWrapper<SkuSaleAttrValue> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(SkuSaleAttrValue::getSkuId, skuId);
        return list(wrapper);
    }

    @Override
    public List<SkuSaleAttrValue> listByAttrId(Long attrId) {
        LambdaQueryWrapper<SkuSaleAttrValue> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(SkuSaleAttrValue::getAttrId, attrId);
        return list(wrapper);
    }

    @Override
    public List<SkuSaleAttrValue> listByAttrIdAndSkuIds(Long attrId, List<Long> skuIds) {
        LambdaQueryWrapper<SkuSaleAttrValue> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(SkuSaleAttrValue::getAttrId, attrId)
                .in(SkuSaleAttrValue::getSkuId, skuIds);
        return list(wrapper);
    }

    @Override
    public List<Long> SkuIdListBySkuIdsAndValue(List<Long> skuIds, String value) {
        LambdaQueryWrapper<SkuSaleAttrValue> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(SkuSaleAttrValue::getAttrValue, value)
                .in(SkuSaleAttrValue::getSkuId, skuIds);
        List<SkuSaleAttrValue> list = list(wrapper);
        List<Long> collect = list.stream().map(SkuSaleAttrValue::getSkuId).collect(Collectors.toList());
        return collect;
    }


}
